|
GNU Multi-Precision Library(GMP)は、多倍長整数など任意の精度の算術ライブラリで、フリーソフトウェアである。符号付き整数、有理数、浮動小数点数を扱う。事実上、動作中のハードウェアが持つメモリ容量以外には精度は制限されない(オペランドの大きさは32ビットマシンでは 231 ビット、64ビットマシンでは 237 ビット〔Future releases 〕)。様々な関数があり、それらが一貫したインタフェースで提供されている。基本インタフェースはC言語だが、他の言語用ラッパーを使えば、C++、OCaml、Perl、Pythonなどでも使える。また、Ruby 2.1でのように〔GCの変更と高速化を盛り込んだRuby 2.1.0 @IT、2014年1月7日(2015年11月11日閲覧)。〕、言語コアに組み込まれている例もある。 GMPの主な用途は暗号(実用と研究)、インターネットセキュリティ、数式処理システムである。 GMPは、どんなオペランドの大きさでも他の多倍長整数ライブラリよりも高速であることを目標としている。このために、以下の点を重視している。 * 基本算術型としてフルワードを使う。 * オペランドの大きさによってそれぞれ異なるアルゴリズムを使う。非常に大きな数に有効なアルゴリズムは、小さい数では遅いことが多い。 * 重要なループには高度に最適化したアセンブリ言語コードを使う。当然、CPUによって異なったものになる。 最初のGMPは1991年にリリースされた。その後継続的に開発と保守が行われている。 公式サイトがgnu.orgにないので混乱する場合があるが、GMPはGNUプロジェクトの一部であり、GNU Lesser General Public License (LGPL) でライセンスされている。 GMPは多くの数式処理システムで整数の算術に使われている。例えばMathematicaがGMPを採用している〔Numerical computation features for Mathematica 5.0 Rob Knapp〕。 GMPはGCCのビルドに必要である。 == 脚注 == 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「GNU Multi-Precision Library」の詳細全文を読む スポンサード リンク
|